/**
 * GameMaster.java
 * Auti h class elehei tin pithanotita nikis-isopalias-sah, kathos kanei kai 
 * newGame, Load, Save.
 */

package gameStructure;

import java.awt.Point;
import java.util.ArrayList;
import java.util.Vector;



class GameMaster {
    
    /**
     * Tha einai ipeuthinos gia tin vasiki kinisi tou Piece sti skakiera.
     * Tha dehetai to Piece pou tha kinithei kai tin thesi pou tha paei kai tha 
     * apofasizetai an ginei kapoio Capture, Promotion 'h aplo move, simfona me tis
     * pithanes kiniseis apo tin Class Piece kai to ekastote checkState.
     * @param p to pioni pou epilehtike
     * @param s to seimio pou tha paei
     * @return tin kinisi tipou Move pou egine allios null.
     */
    
    public Move movement(Piece p, Point s){
        Move pol= new Move();
        return pol;
    }
    /**
     * 
     * @param matrix JPanel tis torinis kinishs pou kaleitai h CheckState
     */
    public void checkState(ArrayList Board){}
    
    /**
     * Dmiourgi neo game set, rotondas an prota theli na apothikeusi ti torini katastasi, 
     * efoson iparhei.
     */
    public void newGame(){}
    
    /**
     * Precondition: Na iparhei egiro arheio, pou na borei na ginei load tou paihnidiou
     * Postcondition: Na arhikopoieitai ena egiro, simfona me to arheio tou load, Vector<JPanel>
     * Fortonei, olokliri tin kantastasi tou paihnidiou pou eihe apothikeutei.
     * @return Epistrefei Vector pou periehei oles tis katastaseis tou paihnidiou, 
     * pou eihan apothikeutei se proigoumeno paihnidi.
     */
    public Vector<Move> loadGame(){
        Vector<Move> iso = new Vector();
        
        return iso;
    }
    
    /**
     * Precondition: Na ehei paihtei toulahistion mia kinisi apo kapoio paihtei.
     * Postcondition: Dimiourgeia egirou arheiou apo opou tha borei na ginei epeita load
     * tou paihnidiou.
     * Apothikeuei tin trehon katastasi tou paihnidiou kathos kai oles tis proigoumenes
     * kiniseis tou, se ena arheio, oste na einai efikth i epanofortosi tou paihnidiou
     * @param CurrentGame Vector<Moves> pou periehei tis katastaseis tou paihnidiou
     */
    
    public void saveGame(Vector CurrentGame){ }
}




